/**
 * <a href="http://www.baidu.com" class="choose" rel="iframe" title="这是标题">baidu</a>
 * href：   以#开头加载对应id的元素如#test加载id为test的元素
 *         以http开头则默认以ajax加载页面，通过rel属性控制加载方式
 * rel：   在以http开头是，rel可以设置为iframe或者ajax来实现不同方式的加载，ajax是注意不能跨域
 * title： 显示的标题
 *
 * 调用方式：$('.choose').powerDialog();
 */
(function ($) {

	$.fn.extend({

		powerDialog: function (options) {

			var defaults = {
				top: 100,
				overlay: 0.5,
				closeButton: true,
				width: 600
			}
			options = $.extend(defaults, options);

			var overlay = $("<div id='powerDialog_overlay'></div>");
			var panel = $('<div id="powerDialog_panel"></div>');
			if (options.closeButton) {
				var header = '<div id="powerDialog_header">' +
					'<div id="powerDialog_title"></div>' +
					'<a class="powerDialog_close" href="#"></a></div>'
				panel.append($(header));
			}
			panel.append($('<div id="powerDialog_content"></div>'));
			$("body").append(overlay);
			$('body').append(panel);
			$("#powerDialog_overlay").click(function () {
				close_modal();
			});

			$('.powerDialog_close').live('click', function () {
				close_modal();
			});
			return this.each(function () {

				var o = options;

				$(this).click(function (e) {

					var href = $(this).attr("href");
					if ($(this).attr('title') != "") {
						$('#powerDialog_title').text($(this).attr('title'));
					}

					if (href.substr(0, 1) == '#') {
						$('#powerDialog_content').html($(href).html());
					} else {
						if ($(this).attr('rel') == 'iframe') {
							$('#powerDialog_content').empty()
								.append('<iframe frameBorder="0" scrolling="auto" ' +
									'width="100%" height="100%" src="'
									+ href + '"></iframe>');
						} else {
							$('#powerDialog_content').empty().load(href);
						}
					}

					$('#powerDialog_overlay').css({ 'display': 'block', opacity: 0 });

					$('#powerDialog_overlay').fadeTo(200, o.overlay);

					panel.css({
						'display': 'block',
						'position': 'fixed',
						'opacity': 0,
						'z-index': 11000,
						'left': 50 + '%',
						'width': o.width + 'px',
						'margin-left': -(o.width / 2) + "px",
						'top': o.top + "px"

					});

					panel.fadeTo(200, 1);

					e.preventDefault();

				});

			});

			function close_modal() {

				$("#powerDialog_overlay").fadeOut(200);

				panel.css({ 'display': 'none' });

			}

			exports = close_modal();
		}

	});

})(jQuery);